Visualization of path between logical network endpoints

ABSTRACT

Some embodiments provide a method that receives a request for information regarding a path between endpoints of a logical network. The method provides, for display, a visualization of the path including (i) a set of logical network components between the endpoints and (ii) a set of physical network components that implement the logical network components. The physical network components and the logical network components are aligned in the display. In some embodiments, the method receives data regarding a packet tracing operation between the endpoints. The method generates a display including (i) a visualization of the path between the endpoints of the logical network and (ii) a representation of the received data regarding the packet tracing operation, with the packet tracing operation data is visually linked to the components of the path.

CLAIM OF BENEFIT TO PRIOR APPLICATIONS

This present application is a continuation application of U.S. patent application Ser. No. 15/588,727, filed May 8, 2017, now published as U.S. Patent Publication 2018/0262594. U.S. patent application Ser. No. 15/588,727, claims the benefit of Indian Patent Application 201741007938, filed Mar. 7, 2017. U.S. patent application Ser. No. 15/588,727, now published as U.S. Patent Publication 2018/0262594, and Indian Patent Application 201741007938, are incorporated herein by reference.

RELATED APPLICATIONS

Benefit is claimed under 35 U.S.C. 119(a)-(d) to Foreign Application Serial No. 201741007938 filed in India entitled “VISUALIZATION OF PATH BETWEEN LOGICAL NETWORK ENDPOINTS”, on Mar. 7, 2017, by NICIRA, INC. which is herein incorporated in its entirety by reference for all purposes

The present application is related in subject matter to U.S. patent application Ser. No. 15/588,746, which is incorporated herein by reference.

BACKGROUND

Network management applications that allow a user to configure and view logical networks in a datacenter (e.g., an enterprise datacenter, a multi-tenant datacenter, etc.) have traditionally provided users with a primarily text-based user interface. These applications enable users (e.g., network administrators) to view information about their networks via text information with, perhaps, simple image representations of basic components (e.g., simple raster images that represent host machines, virtual machines, switches, routers, etc.) that are not representative of the specific features of a user's particular components. Similarly, troubleshooting information (e.g., packet traces) are provided as text logs. These text logs can be parsed with some work, but identifying important details (e.g., where in the network a particular packet was dropped) may be difficult with such an interface.

BRIEF SUMMARY

Some embodiments provide a visualization of a path between endpoints of a logical network that illustrates both the logical network components along the path as well as the physical network components that implement those logical network components for packets sent along the path. The visualization of some embodiments also aligns (e.g., vertically, horizontally, etc.) these physical and logical network components to illustrate the correspondence between the logical network components and the physical network components that implement them.

In some embodiments, the visualization is provided in a user interface in response to input selecting a source logical network endpoint and a destination logical network endpoint. These logical network endpoints may be virtual machines or other data compute nodes that are attached to a port of a logical switch, uplink ports of a logical router that represent a connection of the logical network to external networks (e.g., the Internet), or other endpoints. These endpoints may be attached to logical ports on the same logical switch, or different logical switches separated by one or more logical routers.

The visualization, as mentioned, aligns the logical network components with the physical network components that implement them. The physical network components, in some embodiments, may include the host machines on which the virtual machines or other data compute nodes (i.e., the logical network endpoints) operate, as well as physical machines that implement centralized routing components of logical routers. Each host machine for hosting the data compute nodes, in some embodiments, includes a managed forwarding element (operating, e.g., within the virtualization software of the host machine) that implements the logical networks for the data compute nodes that reside on the host machine. Thus, for example, the managed forwarding element will implement the logical switches to which its data compute nodes attach, as well as distributed routing components of the logical routers to which those logical switches attach, other logical switches attached to those distributed routing components, etc. Logical routers may include centralized routing components (e.g., for providing stateful services), and these centralized routing components are implemented on a separate physical machine (e.g., as a virtual machine or within a forwarding element datapath on the physical machine). The forwarding elements of these hosts may also implement the various logical switches and distributed routing components as needed.

In physical networks that use first-hop processing (i.e., the first managed forwarding element to process a packet performs logical processing not only for the first logical switch but also any other distributed logical network components until the packet needs to be either delivered to its destination or sent to a centralized routing component), the physical network component on which the source endpoint operates may implement multiple logical network components for packets sent from that endpoint. In this case, some embodiments align each physical network component (e.g., the host machine of the source endpoint) with the initial logical network component that it implements for such packets, with the implication that each subsequent logical network component is also implemented by that same physical network component until the next physical network component is reached. In addition, logical routers that may contain both distributed and centralized aspects are shown as a single component in some embodiments, with the single component aligned with the physical machine on which the centralized component is implemented (although the physical network component prior to that may implement the distributed aspect).

In some embodiments, the path visualization uses easily customizable graphics (e.g., scalable vector graphics (SVG)). In addition to illustrating the physical network components (e.g., the host machines), some embodiments illustrate the different physical ports (e.g., network interface controllers (NICs)) of the physical components, as well as indications as to when these physical ports are aggregated (e.g., using NIC teaming). Some embodiments use different colors or other indicators to (i) differentiate the physical network components from the logical network components and (ii) differentiate healthy components and connections (e.g., tunnels between physical components) from those that are down. In addition, different embodiments may use colors or other indicators to indicate other aspects of the network, such as to indicate logical and physical interfaces of components, etc.

Within the displayed visualization, the components are selectable in some embodiments to provide additional information about a logical or physical component. Via a mouse-over, click, tap (e.g., for a touchscreen), or other selection input, an administrator can select a component, an interface of a component, etc. In response, the user interface displays information about the component, such as the name, status, and/or other information (e.g., for a physical component, an interface, a tunnel between physical components, etc.). Some embodiments provide information for only the physical components, while other embodiments provide additional information upon selection for the logical components as well (e.g., the name, relevant ingress and egress interfaces, etc. for a logical forwarding element, etc.).

Some embodiments also provide the above-described visualization or a similar path visualization along with information regarding a packet tracing operation from the source endpoint to the destination endpoint, with a visual linking between the packet tracing information and the path visualization. The packet tracing operation of some embodiments injects a trace packet, that simulates a packet sent from the source endpoint, at the first physical component (e.g., the first hop managed forwarding element operating on the same host machine as a source data compute node). The physical components along the path process the trace packet as they would an actual packet sent by the source, but in some embodiments (i) the packet is not actually delivered to its destination and (ii) the physical components that process the packet send messages to a centralized controller or manager regarding the processing of the packet (e.g., both logical and physical processing).

The messages sent to the controller may indicate that a forwarding element has performed various actions, such as physical receipt of a packet at a particular port, ingress of a packet to a logical forwarding element, logical forwarding of a packet according to a logical forwarding element, application of a firewall, access control, or other rule for a logical forwarding element to a packet, physical forwarding (e.g., encapsulation and output) by a managed physical forwarding element of a packet, dropping a packet, delivery of a packet to its destination endpoint (which is not actually performed, as mentioned), etc. The display of the packet tracing information, in some embodiments, includes a list of these messages, with each message indicating a type (e.g., drop, forward, deliver, receive), a physical network component that sent the message, and a logical network component to which the message relates (if the message is not a purely physical network action).

To link to the visualization of the physical and logical network components, the user interface representation of each of the messages is selectable (e.g., with a mouse-over, click, tap, or other input). Upon selection of a particular message, the user interface highlights the physical network component that generated and sent the message as well as the logical network component to which the message relates (if the message has such a component). Similarly, in some embodiments, selection of a physical network component in the path visualization causes the user interface to highlight the messages generated and sent by that component, while selection of a logical network component causes the user interface to highlight the messages that relate to that component.

The preceding Summary is intended to serve as a brief introduction to some embodiments of the invention. It is not meant to be an introduction or overview of all inventive subject matter disclosed in this document. The Detailed Description that follows and the Drawings that are referred to in the Detailed Description will further describe the embodiments described in the Summary as well as other embodiments. Accordingly, to understand all the embodiments described by this document, a full review of the Summary. Detailed Description and the Drawings is needed. Moreover, the claimed subject matters are not to be limited by the illustrative details in the Summary, Detailed Description and the Drawing, but rather are to be defined by the appended claims, because the claimed subject matters can be embodied in other specific forms without departing from the spirit of the subject matters.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth in the appended claims. However, for purpose of explanation, several embodiments of the invention are set forth in the following figures.

FIG. 1 illustrates an example of a visualization that shows both a logical network path and a physical network path.

FIGS. 2A-B illustrate a GUI over four stages in which a user selects source and destination logical endpoints and is presented with a path visualization from the source endpoint to the destination endpoint.

FIG. 3 illustrates an example of two endpoints on two different logical switches separated by three logical routers, with no central routing components along the path.

FIG. 4 illustrates an example of two endpoints on two different logical switches separated by one logical router, with no central routing component for that logical router along the path.

FIG. 5 illustrates an example in which two selected endpoints are on the same logical switch but operating on different host machines.

FIG. 6 conceptually illustrates a process of some embodiments for generating a path visualization for a set of logical network endpoints.

FIGS. 7A-B illustrate an example of a GUI for initiating a packet tracing operation and displaying the results of that operation over three stages.

FIG. 8 illustrates an example of a user selecting a particular row in a table, with the GUI highlighting the corresponding logical and physical components in response.

FIG. 9 illustrates an example of a user selecting a logical component in the logical path visualization, with the GUI highlighting the messages in the table that correspond to that component.

FIG. 10 illustrates an example of a user selecting a physical component in the physical path visualization, with the GUI highlighting the messages in the table that correspond to the selected component.

FIG. 11 conceptually illustrates a process of some embodiments for initiating a packet tracing operation and displaying the results of this operation along with a visualization of the logical and physical network paths taken by the trace packets.

FIG. 12 conceptually illustrates the architecture of a network management and control system that generates the GUI of some embodiments for displaying network path visualizations and trace operation results.

FIG. 13 conceptually illustrates an electronic system with which some embodiments of the invention are implemented.

DETAILED DESCRIPTION

In the following detailed description of the invention, numerous details, examples, and embodiments of the invention are set forth and described. However, it will be clear and apparent to one skilled in the art that the invention is not limited to the embodiments set forth and that the invention may be practiced without some of the specific details and examples discussed

Some embodiments provide a visualization of a path between endpoints of a logical network that illustrates both the logical network components along the path as well as the physical network components that implement those logical network components for packets sent along the path. The visualization of some embodiments also aligns (e.g., vertically, horizontally, etc.) these physical and logical network components to illustrate the correspondence between the logical network components and the physical network components that implement them.

FIG. 1 illustrates an example of such a visualization, showing both a logical network path 100 and a physical network path 150. In some embodiments, such a visualization is provided in a user interface in response to input selecting a source logical network endpoint and a destination logical network endpoint. These logical network endpoints may be virtual machines or other data compute nodes that are attached to a port of a logical switch, uplink ports of a logical router that represent a connection of the logical network to external networks (e.g., the Internet), or other endpoints. These endpoints may be attached to logical ports on the same logical switch, or different logical switches separated by one or more logical routers.

In this case, the endpoints are two virtual machines (VMs), represented by graphics 105 (for VM-A-1) and 110 (for VM-B-3). The first VM 105 attaches to a first logical switch 115 (LS-1), while the second VM 110 attaches to a second logical switch 120 (LS-2). It should be noted that, for simplicity, the reference numbers used for the various graphical representations of the components may also be used to refer to the components themselves. A packet sent from the first VM 105 to the second VM 110 would take a logical path through the first logical switch 115 to a first tier-1 logical router 125, then a first tier-0 logical router 135 (differences between tier-1 and tier-0 logical routers of some embodiments are explained below), a second tier-0 logical router 140, a second tier-1 logical router 130, and the second logical switch 120 in order to reach the second VM 110. In addition, two logical port graphics are shown for each of these components 115-140, representing the ingress (on the left) and egress (on the right) ports for each component, for packets sent from the first VM 105 to the second VM 110. In many cases, logical switches (and logical routers) will have many more logical ports than those shown in the path visualization. For instance, logical switches may have hundreds or even thousands of ports for different VMs or other data compute nodes that attach to them. Tier 1 logical routers (also referred to as tenant logical routers), such as the logical router 125, may have multiple logical switches connected to different logical ports. Similarly, tier 0 logical routers (also referred to as provider logical routers), such as the logical router 135, may have multiple logical ports for other tier-1 logical routers and/or multiple uplink ports for connecting to external networks. Given the large number of possible logical ports, some embodiments only show the ingress and egress ports for the path between the specified endpoints.

The logical port graphics are shown as dashed lines in this and subsequent diagrams to represent a different color than the solid lines of the logical components. Some embodiments use various different colors to represent (i) logical network components (shown as solid lines in these examples), (ii) physical network components (shown as short dashed lines), (iii) physical and logical ports/interfaces/connections that are currently operational (shown as longer dashed lines), and (iv) physical and logical ports/interfaces/connections that are not currently operational (shown as a combination of short and long dashes). For instance, some embodiments use blue to represent logical components, brown to represent physical components, green to represent interfaces and connections that are up, and red to represent interfaces and connections that are down. Some embodiments also use gray for interfaces and connections whose state is not known, and orange for interfaces and connections that are in a mix of states (e.g., a tunnel that is up in one direction and down in the other direction, or an interface that is working for certain traffic and not other traffic). It should be understood that other combinations of colors or other indicators may be used; for instance, using the logical and physical component colors for logical and physical interfaces that are operational, using the same color for logical and physical components, using different colors for different types of components, etc.

The visualization, as mentioned, aligns the logical network components with the physical network components that implement them. The physical network components, in some embodiments, may include the host machines on which the virtual machines or other data compute nodes (i.e., the logical network endpoints) operate, as well as physical machines that implement centralized routing components of logical routers. Each host machine for hosting the data compute nodes, in some embodiments, includes a managed forwarding element (operating, e.g., within the virtualization software of the host machine) that implements the logical networks for the data compute nodes that reside on the host machine. Thus, for example, the managed forwarding element (MFE) will implement the logical switches to which its data compute nodes attach, as well as distributed routing components of the logical routers to which those logical switches attach, other logical switches attached to those distributed routing components, etc. Logical routers may include centralized routing components (e.g., for providing stateful services), and these centralized routing components are implemented on a separate physical machine (e.g., as a virtual machine or within a forwarding element datapath on the physical machine). The forwarding elements of these hosts may also implement the various logical switches and distributed routing components as needed.

In this case, the physical network path 150 includes two host machines 155 (Host-0001) and 160 (Host-0017), also referred to as transport nodes, on which the first and second VMs 105 and 110 reside, respectively. In addition, in this case, each of the tier-0 logical routers includes a centralized routing component that is along the path between the VMs, and thus the physical machines 165 and 170 (also referred to as edge nodes) implementing these centralized routing components are shown as well. In the case of the host machines 155 and 160, some embodiments display all of the physical interfaces of these machines (using, e.g., the same color as the logical ports shown for the logical components 115-140). These are the physical network interface controllers (PNICs) through which a host machine connects to the datacenter network, not the virtual network interface controllers (VNICs) through which the VMs operating on the host connect to the MFE (as a typical host will have more VMs than can be easily displayed). The representations of the physical machines 165 and 170 implementing the centralized logical routing components illustrate the various machines in an edge cluster (i.e., the first edge cluster shown by component 165 includes four edge nodes, while the second edge cluster shown by component 170 has only one edge node). In addition, the physical path between the physical host machines 155 and 160 will typically involve tunnels (e.g., through various switches and/or routers of a datacenter that do not implement the logical networks). Representations of such tunnels 175-185 are displayed in the path visualization of some embodiments. In some embodiments, these tunnels are shown in the same color as the physical and logical interfaces.

In physical networks that use first-hop processing (i.e., the first MFE to process a packet performs logical processing not only for the first logical switch but also any other distributed logical network components until the packet needs to be either delivered to its destination or sent to a centralized routing component), the physical network component on which the source endpoint operates may implement multiple logical network components for packets sent from that endpoint. In this case, some embodiments align each physical network component (e.g., the host machine of the source endpoint) with the initial logical network component that it implements for such packets, with the implication that each subsequent logical network component is also implemented by that same physical network component until the next physical network component is reached. In addition, logical routers that may contain both distributed and centralized aspects are shown as a single component in some embodiments, with the single component aligned with the physical machine on which the centralized component is implemented (although the physical network component prior to that may implement the distributed aspect).

In the example of FIG. 1, the MFE of the first host machine 155 implements the first logical switch 115, the first tier-1 logical router 125, and a distributed component of the tier-0 logical router 135 for packet sent from the first VM 105 to the second VM 110. At this point, the first host machine 155 tunnels the packet to the physical machine 165, which implements the centralized routing component of the first tier-0 logical router 135. This machine 165 tunnels the packet to the physical machine 170, which implements the centralized component of the second tier-0 logical router 140. Using first-hop processing principles, this machine also implements the distributed component of the logical router 140, the second tier-1 logical router 130, and the second logical switch 120. Finally, the packet is tunneled to the host machine 160, which performs additional processing for the logical switch 120 and delivers the packet to the VM 110.

This figure also illustrates top-of-rack (TOR) switches 190 and 195 among the physical components. Some embodiments include the TOR switches to which the host machines connect (i.e., the host machines that host the logical network endpoints, in this case host machines 155 and 160). These TOR switches generally do not perform logical network processing, except when the host machine is either a physical server that itself is the logical network endpoint (i.e., it does not host VMs or other data compute nodes) or when the host machine is a legacy machine that is not capable of performing logical network processing. In some cases, a single host machine (e.g., the host machine 155) may connect to multiple TOR switches. In this case, some embodiments provide selectable items 191 that allow a user to move through the various TOR switches. In different embodiments, users can select these items directly, or select one of the physical interfaces represented in the host machine visualization in order to cause the user interface to display the particular TOR switch to which that interface connects.

Within the displayed visualization, the components are selectable in some embodiments to provide additional information about a logical or physical component. Via a mouse-over, click, tap (e.g., for a touchscreen), or other selection input, an administrator can select a component, an interface of a component, etc. In response, the user interface displays information about the component, such as the name, status, and/or other information (e.g., for a physical component, an interface, a tunnel between physical components, etc.). Some embodiments provide information for only the physical components, while other embodiments provide additional information upon selection for the logical components as well (e.g., the name, relevant ingress and egress interfaces, etc. for a logical forwarding element, etc.).

Some embodiments also provide the above-described visualization or a similar path visualization along with information regarding a packet tracing operation from the source endpoint to the destination endpoint, with a visual linking between the packet tracing information and the path visualization. The packet tracing operation of some embodiments injects a trace packet, that simulates a packet sent from the source endpoint, at the first physical component (e.g., the first hop MFE operating on the same host machine as a source data compute node). The physical components along the path process the trace packet as they would an actual packet sent by the source, but in some embodiments (i) the packet is not actually delivered to its destination and (ii) the physical components that process the packet send messages to a centralized controller or manager regarding the processing of the packet (e.g., both logical and physical processing).

The messages sent to the controller may indicate that a forwarding element has performed various actions, such as physical receipt of a packet at a particular port, ingress of a packet to a logical forwarding element, logical forwarding of a packet according to a logical forwarding element, application of a firewall, access control, or other rule for a logical forwarding element to a packet, physical forwarding (e.g., encapsulation and output) by a managed physical forwarding element of a packet, dropping a packet, delivery of a packet to its destination endpoint (which is not actually performed, as mentioned), etc. The display of the packet tracing information, in some embodiments, includes a list of these messages, with each message indicating a type (e.g., drop, forward, deliver, receive), a physical network component that sent the message, and a logical network component to which the message relates (if the message is not a purely physical network action).

To link to the visualization of the physical and logical network components, the user interface representation of each of the messages is selectable (e.g., with a mouse-over, click, tap, or other input). Upon selection of a particular message, the user interface highlights the physical network component that generated and sent the message as well as the logical network component to which the message relates (if the message has such a component). Similarly, in some embodiments, selection of a physical network component in the path visualization causes the user interface to highlight the messages generated and sent by that component, while selection of a logical network component causes the user interface to highlight the messages that relate to that component.

The above describes the logical and physical path visualization of some embodiments. The following sections describe this path visualization and its use in illustrating a packet tracing operation in greater detail. Section I describes the path visualization user interface of some embodiments. Next, Section 11 describes the use of this path visualization along with packet tracing results. Finally, Section it describes an electronic system with which some embodiments of the invention are implemented.

I. Path Visualization Tool

As mentioned, some embodiments provide a visualization of a path between endpoints of a logical network that illustrates both the logical network components along the path as well as the physical network components that implement those logical network components for packets sent along the path. The visualization of some embodiments also aligns (e.g., vertically, horizontally, etc.) these physical and logical network components to illustrate the correspondence between the logical network components and the physical network components that implement them.

In some embodiments, the visualization is provided in a user interface in response to input selecting a source logical network endpoint and a destination logical network endpoint. These logical network endpoints may be virtual machines or other data compute nodes that are attached to a port of a logical switch, uplink ports of a logical router that represent a connection of the logical network to external networks (e.g., the Internet), or other endpoints. These endpoints may be attached to logical ports of the same logical switch, or different logical switches separated by one or more logical routers.

FIGS. 2A-B illustrate a GUI 200 over four stages 205-220 in which a user selects source and destination logical endpoints and is presented with a path visualization from the source endpoint to the destination endpoint. In some embodiments, this GUI 200 is presented within the context of a cloud management or network-specific management application used by a network administrator. The administrator may manage a datacenter or set of datacenters as a whole or may manage a logical network or set of logical networks within that datacenter (e.g., as a tenant of the datacenter). In some embodiments, the management application used by the administrator includes, among other options, a port connection tool that allows the administrator to select source and destination ports in their logical network and view the logical and physical paths between the endpoints.

The first stage 205 illustrates that the user has selected the path visualization (“port connection”) tool, and is beginning to choose a source endpoint. Some embodiments present the user with a list of logical ports to select from, or present a list of logical switches and then logical ports of the selected switch (this may also include any logical routers with uplink ports that connect to an external network, which may be treated as a logical network endpoint). In other embodiments, as shown in the GUI 200, the user initially chooses a VM (or another type of data compute node, in case the logical network includes containers or other options), and the GUI then presents a list of virtual interfaces of that VM.

In the first stage, the user has provided input to cause the GUI 200 to display a drop-down menu 225 with a list of VMs that the user manages. In some embodiments, by selecting the box 230 (e.g., with a mouse click, keyboard input, touch input, etc.), the user causes the GUI to display such a menu. The user selects the first VM (VM1-9ab), as shown. This causes the GUI 200 to display, in the second stage 210, a source virtual interface (VIF) selection box 235, which the user has selected to bring up a drop-down menu 240. This drop-down menu 240 provides options for each of the network adapters of the selected VM. Whereas a logical network may have hundreds or thousands of logical ports, selection in this manner (first VM, then VNIC or VIF) provides an easier mechanism for a user to select a logical network endpoint in some embodiments. In this case, the user selects the second choice (Adapter 2), as shown.

The third stage 215 illustrates the GUI 200 after the user has selected a destination VM (VM-6qb) and is in the process of selecting a VIF for that VM from a drop-down menu 245. With the two logical network endpoints selected, in the fourth stage 220 the GUI displays the logical and physical path visualizations 250 and 255.

In this example, the two logical network endpoints are (i) both attached to the same logical switch 260 and (ii) both operating on the same host machine 265. As such, only a single logical component (the logical switch 260) and a single physical component (the host machine 265) appear in the path visualization. As such, a packet sent by VM1-9ab to VM-6qb would not actually leave the host machine 265. In this case, with only one logical component that is completely implemented for the path by a single physical component, aligning the two paths is simple.

It should be noted that two VMs on the same host machine could be on different logical switches connected by one or more logical routers. In such a case, if only distributed components of the logical router were required, packets would still only be processed by the MFE on the host machine. Some embodiments display only one representation of the host machine in such a case (on the source side), while other embodiments display two representations of the host machine (at either end of the path visualization).

As mentioned above, some embodiments use easily customizable graphics (e.g., scalable vector graphics (SVG)) for the path visualization. To generate the path visualization, in some embodiments the network management application provides the front-end graphical user interface (GUI), while querying a back-end network management and control system for the data used to generate the GUI. In some embodiments, the front-end application stores the graphics (e.g., for logical switches and routers, transport and edge nodes, logical and physical interfaces, tunnels, etc.), but queries the network management and control system for the most up-to-date data regarding the actual components along the logical and physical paths between two user-specified endpoints. In other embodiments, the front-end GUI is also part of the network management and control system, which the user accesses through. e.g., a browser or other remote login.

In addition to the component names and types for the logical and physical paths, in some embodiments the GUI is provided additional information about each component, interface, and connection (or a subset of the components, interfaces, and connections). In some embodiments, the components (or interfaces, connections, etc.) are selectable to provide additional information about a logical or physical component. Via a mouse-over, click, tap (e.g., for a touchscreen), or other selection input, an administrator can select a component, an interface, a tunnel representation, etc. In response, the user interface displays information about the selected item. Some embodiments provide information for only the physical components, interfaces, and tunnels, while other embodiments provide additional information upon selection for the logical components as well (e.g., the name, relevant ingress and egress interfaces, etc. for a logical forwarding element, etc.).

FIGS. 3-/5 illustrate various examples of the GUI providing information about different components, as well as showing different types of logical and physical network paths. FIG. 3 illustrates an example of two endpoints on two different logical switches separated by three logical routers, with no central routing components along the path. This figure illustrates the path visualization over two stages 305-310, in which the GUI provides information about a physical NIC of one of the host machines.

As shown at the first stage 305, the GUI includes a logical network visualization 315 between two VMs 320 and 325 and a physical path visualization 360. A packet sent along the logical network path 315 travels (logically) from the VM 320 to a first logical switch 330, a first tier-1 logical router 340, a tier-0 logical router 350, a second tier-1 logical router 345, and a second logical switch 335, before being delivered to the destination VM 325. The physical path includes only the two host machines 365 and 370 on which the VMs 320 and 325 operate, respectively.

In this case, neither of the tier-1 logical routers 340 and 345 have centralized components (i.e., all of their routing, firewall, etc. functionality can be performed in a distributed manner), and any centralized components of the tier-0 logical router 350 do not need to process packets sent between the two VMs 320 and 325 (e.g., because such centralized components only handle north-south traffic entering or leaving the logical network, rather than east-west traffic between two logical network VMs.

As a result, all of the logical processing up to the egress aspects of the second logical switch 335 are performed by the MFE on the first host machine 365, in some embodiments. That is, this MFE performs the processing for logical switch 330 to logically forward a packet (sent by the source VM 320) to the first tier-1 logical router 340, for the logical router 340 to logically forward the packet to the tier-O logical router 350, for the logical router 350 to logically forward the packet to the second tier-1 logical router 345 (noting that, in some embodiments, a transit logical switch that is not shown to the user may be inserted between each pair of logical routers), for the logical router 345 to logically forward the packet to the second logical switch 325, and for this logical switch to logically forward the packet to the egress port associated with the VM 325. The packet is then tunneled (with this tunnel 375 shown in the physical network path visualization 360) to the host machine 370 on which the second VM 325 operates. The MFE for this host machine 370 performs additional processing for the logical switch 335 and delivers the packet to the VM 325. As such, the first host machine 365 aligns with the first logical switch 330 and the second host machine 370 aligns with the second logical switch 335.

At this stage 305, the user selects a physical interface representation 380 within the representation of the first host machine 365. As mentioned above, these selections may be made via a cursor controller (e.g., via a mouse click), a touch interaction, a keyboard input, or via a different input mechanism). In some embodiments, moving the cursor over a physical component causes the GUI to display additional information, while other embodiments require the user to perform additional interaction (e.g., a mouse click).

The second stage 310 illustrates the GUI displaying additional information 385 about the physical interface 380. In this example, for a physical NIC, the GUI displays an interface identifier, the administrative and link status of the NIC, a source, and a maximum transmission unit (MTU) size. Different embodiments may include different information about the NIC (e.g., amount of ingress and egress traffic processed by the NIC, etc.). In all of the FIGS. 3-5, it should be understood that these are merely examples of information that may be displayed about different types of components, and other embodiments may display different sets of information.

FIG. 4 illustrates an example of two endpoints on two different logical switches separated by one logical router, with no central routing component for that logical router along the path. This figure provides the path visualization over two stages 405-410, in which the GUI provides information about a physical uplink (NIC team) of one of the host machines. As shown at the first stage 405, the GUI includes a logical network visualization 415 between two VMs 420 and 425 and a physical path visualization 450. A packet sent along the logical network path 415 travels (logically) from the VM 420 to a first logical switch 430, a tier-1 logical router 440, and a second logical switch 435, before being delivered to the destination VM 425. The physical path includes only the two host machines 455 and 460 on which the VMs 420 and 425 operate, respectively.

In this example, the representation of the first physical host machine 455 includes a box 475 that encompasses two of its physical interfaces. Such graphics are used to indicate NIC teaming in some embodiments. In some embodiments, a user may aggregate multiple physical NICs to operate as one higher-bandwidth data path by load-sharing traffic between the NICs in the team.

In this case, the tier-1 logical router 440 does not have a centralized component, or its centralized component does not handle traffic between two logical switches that both attach to the logical router. As a result, all of the logical processing up to the egress aspects of the second logical switch 435 are performed by the MFE on the first host machine 455, in some embodiments. That is, this MFE performs the processing for the first logical switch 430 to logically forward a packet (sent from the source VM 420) to the logical router 440, for the logical router 440 to logically forward the packet to the second logical switch 435, and for this logical switch to logically forward the packet to the egress port associated with the VM 425. The packet is then tunneled (with this tunnel 465 shown in the physical network path visualization 450) to the host machine 460 on which the second VM 425 operates. The MFE for this host machine 460 performs additional processing for the logical switch 425 and delivers the packet to the VM 425. As such, the first host machine 455 aligns with the first logical switch 430 and the second host machine 460 aligns with the second logical switch 435.

At this stage 405, the user selects the NIC team representation 475. The second stage 410, as a result, illustrates the GUI displaying additional information 480 about the NIC team (or uplink) 475. In this example, for a NIC team, the GUI displays its name and identifier (i.e., the name and identifier of the team), the names of the NICs that make up the team, the policy for NIC selection within the team (in this case, an explicit failover order is specified), and MTU size. Different embodiments may include different information about the NIC team (e.g., amount of ingress and egress traffic processed by the NICs, further details about the NIC selection policy, etc.).

FIG. 5 illustrates an example in which two selected endpoints are on the same logical switch but operating on different host machines. This figure provides the path visualization over two stages 505-510, in which the GUI provides information about the tunnel between the two host machines. As shown at the first stage 505, the GUI includes a logical network visualization 515 between two VMs 520 and 525 and a physical path visualization 550. A packet sent along the logical network path between the two VMs 520 and 525 is processed logically by only a logical switch 530, to which both VMs connect. The physical path includes the two host machines 555 and 560 on which the two VMs 520 and 525 operate, respectively.

The MFE in the first host machine 555 would perform processing for the logical switch 530 to determine the logical egress port associated with the VM 525, and then forward the packet to the second host machine 560 via the tunnel 565 between the two. However, in this example, as shown by the dashed-dotted line (representative of, e.g., a red line), the tunnel is currently down. This could occur because of an issue with the NIC(s) or MFEs at host machine 555 or 560, a problem with the datacenter network between the two host machines (e.g., the switches and routers that do not perform logical processing), etc.

At this stage 505, the user selects the representation of the tunnel 565 in the physical path visualization 550. The second stage, as a result, illustrates the GUI displaying additional information 570 about the tunnel. As shown, for tunnels, some embodiments display information about each direction of the tunnel. For each direction, this example displays the status of the connection (down, in this case), an identifier, the local network (IP) address, and the type of encapsulation used (e.g., VXLAN, GENEVE, STT, etc.).

The above-described FIGS. 3-5 show examples of the provision of additional information regarding physical components, interfaces, and connections. Some embodiments provide this information for only the physical components of the path visualization, while other embodiments provide additional information upon selection for the logical components as well. For example, some embodiments provide, for logical forwarding elements, the name and/or identifier, the relevant ingress and egress ports for the path, packet statistics collected for the logical forwarding element, etc. Similarly, identifiers, statistics, and other information may be provided for logical ports, centralized routing components, etc.

FIG. 6 conceptually illustrates a process 600 of some embodiments for generating a path visualization for a set of logical network endpoints (e.g., a pair of source and destination endpoints). This process 600 is performed, in some embodiments, by a network management application that is integrated with a network control and management system for managing the implementation of logical networks within a physical network (e.g., a datacenter). In some embodiments, the network management application operates on a user device (e.g., an administrator computer) and queries the network control system for data. In other embodiments, the network management application operates on back-end devices (e.g., a cluster of computers on which the management and control system operates), and the administrator remotely accesses the application (e.g., through a web browser).

As shown, the process 600 begins by receiving (at 605) a set of logical network endpoints through a GUI. In some embodiments, the user specifies two logical switch ports (on the same or different logical switches) or a logical switch port and a tier-0 logical router uplink for communicating with external networks (in some embodiments, the administrator may want to visualize the path for packets sent from a VM to the external network). In other embodiments, the user specifies a particular data compute node (e.g., a VM) or data compute node interface (e.g., a particular VIF of a VM) for each endpoint, as shown in FIG. 2.

The process 600 then determines (at 610) the logical network components and interfaces for the path between endpoints. That is, the process determines the set of logical components through which a packet sent from the source endpoint to the destination endpoint would pass. This will generally include the logical switches to which the two endpoints connect (if they both connect to logical switches), as well as any logical routers required for the packets to traverse the logical network between the endpoints. In most cases, the set of logical components between two endpoints will fit one of four models: (i) two endpoints on the same logical switch (e.g., as shown in FIG. 5), (ii) two different logical switches with a single tier-1 logical router in-between (e.g., as shown in FIG. 4), (iii) two different logical switches with two tier-1 logical routers and a single tier-0 logical router in-between (e.g., as shown in FIG. 3), and two different logical switches with two tier-1 logical routers and a two tier-0 logical routers in-between (e.g., as shown in FIG. 1). In addition, these components will often have many logical ports, and the process determines the specific ports that enable the connections between the endpoints and the logical switches as well as the interfaces that connect the components (e.g., the logical switch port that links to a logical router, etc.). For each component and each interface, some embodiments also determine the data that might be requested within the GUI (e.g., by a user selecting the component).

Next, the process 600 determines (at 615) the physical network components along the path and the interfaces of these components. That is, the process determines the set of physical components that will perform logical processing on a packet sent from the source endpoint to the destination endpoint (as opposed to physical network switches and routers that might forward an encapsulated packet) sent between these components. This will generally include the host machines on which the endpoints operate (when the endpoints are VMs or other data compute nodes) as well as the physical machines that implement any centralized routing components through which a packet will pass. Not all logical routers will have such centralized components (e.g., a tier-1 logical router that does not implement any stateful services may not require a centralized component), and not all packets will need to pass through the centralized components of logical routers they traverse (e.g., the centralized component of a tier-0 logical router may only process packets ingressing and egressing the logical network). The process also identifies the physical interfaces and the teaming properties of these interfaces. In addition, the process determines the properties of these components and interfaces that might be requested within the GUI, as well as the properties of the tunnels between the physical components, in some embodiments.

The process 600 also determines (at 620) the implementation of the logical components by the physical components along the path, in order to determine the alignment of the physical and logical components. Which logical components are implemented by which physical components will depend on the path of the packet, when first-hop processing principles are applied. In general, the physical components will be configured to implement all of the logical components that they might need to, but will not necessarily implement all of these components for a particular packet. For example, if a packet between two endpoints passes through two tier-1 logical routers, but only one of them has a centralized component, the physical machine that implements the tier-0 logical router between the two will depend on the direction of the packet.

Finally, the process 600 provides (at 625) the logical component, physical component, and alignment data to the GUI. In some embodiments, this information is provided as a set of data structures, which the application converts to a graphical visualization of the paths (e.g., using SVG images). In other embodiments (e.g., when the GUI is provided on a web browser), the aligned graphical data is provided. After providing the data, the process 600 ends.

II. Packet Tracing Tool

In addition to providing the path visualization as shown in Section I, some embodiments also provide the above-described visualization or a similar path visualization along with information regarding a packet tracing operation from a source endpoint to a destination endpoint. Some such embodiments also use a visual link between the packet tracing information and the path visualization.

The packet tracing operation of some embodiments injects a trace packet, that simulates a packet sent from the source endpoint, at the first physical component (e.g., the first hop MFE operating on the same host machine as a source data compute node). The physical components along the path process the trace packet as they would an actual packet sent by the source, but in some embodiments (i) the packet is not actually delivered to its final destination and (ii) the physical components that process the packet send messages to a centralized controller or manager regarding the processing of the packet (e.g., both logical and physical processing).

The messages sent to the controller may indicate that a forwarding element has performed various actions, such as physical receipt of a packet at a particular port, ingress of a packet to a logical forwarding element, logical forwarding of a packet according to a logical forwarding element, application of a firewall, access control, or other rule for a logical forwarding element to a packet, physical forwarding (e.g., encapsulation and output) by a managed physical forwarding element of a packet, dropping a packet, delivery of a packet to its destination endpoint (which is not actually performed, as mentioned), etc. The display of the packet tracing information, in some embodiments, includes a list of these messages, with each message indicating a type (e.g., drop, forward, deliver, receive), a physical network component that sent the message, and a logical network component to which the message relates (if the message is not a purely physical network action).

FIGS. 7A-B illustrate an example of a GUI 700 for initiating a packet tracing operation and displaying the results of that operation over three stages 705-715. In these three stages, a user provides source and destination information for a trace operation and initiates that operation, then is provided the results along with a path visualization between the endpoints. In some embodiments, this GUI 700 is presented within the context of a cloud management or network-specific management application used by a network administrator. The administrator may manage a datacenter or set of datacenters as a whole or may manage a logical network or set of logical networks within that datacenter (e.g., as a tenant of the datacenter). In some embodiments, the management application used by the administrator includes, among other options, a packet tracing tool for testing a connection between endpoints. The packet tracing tool of some embodiments allows the administrator to select source and destination ports in their logical network and view the results of sending a trace packet from the source to the destination.

The first stage 705 illustrates that the user has selected the packet tracing (“traceflow”) tool, and is beginning to choose a source endpoint. In some embodiments, as shown, the source endpoint is always a VM (or other data compute node, such as a container), that can act as a packet source within the logical network). In other embodiments, the user can select other types of source endpoints, such as replicating a packet entering the logical network from an external network. The user opens a drop-down menu 720 for the source VM, and is selecting VM-A-1 in the first stage 705.

The second stage 710 illustrates the GUI 700 after the user has filled out all of the traceflow configuration options. For the source, the user has chosen a VM and virtual interface, and the GUI 700 displays the MAC and IP address of this interface (which will be the source IP and MAC address of the packet). In addition, the user has input the destination information. For the destination, the user selects a destination type (e.g., another VM or other data compute node, an uplink port of a logical router that connects to an external network, etc.). In this case, the user has selected a VM, and thus the VM and virtual interface fields are filled out as well. A virtual interface of VM-B-3 will be the destination, in this case. The GUI 700 also displays the MAC and IP address of the destination interface, although the trace packets will only have the IP address of this interface as their destination address if the two endpoints are on different logical switches (the destination MAC will initially be that of the logical router port to which the source's logical switch connects).

The GUI 700 of some embodiments also includes an “advanced” section, which is currently toggled to be not shown. In some embodiments, this allows the user to, among other options, specify characteristics of the trace packet(s) that will be sent from the source endpoint to the destination endpoint. For instance, some embodiments allow the user to specify the packet size (e.g., Ethernet frame size), initial time to live, timeout, Ethertype, payload type, and any specific payload data. The user may also specify the transport layer protocol (e.g., TCP, ICMP, UDP, etc.), and various options for that protocol (such as the ICMP identifier or sequence number).

The GUI 700 displays a “trace” button 725, which the user is selecting at stage 710. This causes the network management and control system to initiate a trace operation by generating a packet with the specified characteristics and injecting the packet at the source virtual interface. That is, the actual source VM does not send the packet, but rather the management and control system simulates the receipt of such a packet from the source VM in the MFE to which the source VM connects. As mentioned above, the source MFE and any other physical components along the path process the trace packet as they would an actual packet sent by the source, but do not actually deliver the packet to the final destination (so that the VM does not receive a packet that it should not). In addition, the physical components send messages to the management and control system regarding their logical and physical processing of the packet.

The third stage 715 illustrates the GUI 700 displaying the results of the trace operation along with a path visualization between the source and destination endpoints. As shown, the GUI 700 of some embodiments includes a first section 730 that identifies the basic source and destination information, along with a selectable item for re-initiating the trace operation. Below this, the GUI 700 includes a section with the aligned logical and physical network path visualizations 735 and 740 on one side and a table 745 of packet tracing operation results on the other.

The aligned path visualizations 735 and 740 are the same types of visualizations described in the above section in some embodiments, though other embodiments may use different visualizations for the path through the network between the selected endpoints. In this example, the logical network path between the two VMs includes two logical switches 750 and 755, as well as one logical router 760. The physical network path, meanwhile, includes the two host machines 765 and 770 on which the source and destination VMs operate, with a tunnel between the two.

The table 745 of packet tracing operation results, in some embodiments, includes a list of messages received by the network management and control system from the physical components 765 and 770 of the physical network path. As shown, some embodiments display a row for each such message. In this case, the table indicates, for each message, the hop number (hops, here, referring to the physical components, rather than the logical components), the type of message (also called an observation), the physical node, and the logical component (for physical actions, other information may be provided).

The observation type, in some embodiments, indicates a type of action taken by the MFE that generated and sent the message to the network management and control system. In some embodiments, this may be either injection (the insertion of the packet in the initial MFE at the source host machine), receipt (e.g., receipt by a logical component at a logical ingress port, receipt of a physical packet at a host machine, etc.), forwarding (logical or physical forwarding), dropping (e.g., based on a firewall rule, a physical connection issue, etc.), and delivered (for delivery of the packet to the destination endpoint). Though not shown in this figure, in some embodiments, the table can be sorted to include only rows for specific observation types (e.g., only the forwarding messages). In some embodiments, the rows for dispositive actions (dropping, delivery) are colored differently than the other rows, as in this example (e.g., green for delivery, red for dropping).

The node indicates the name of the physical host machine that performed the action for that row, and generated the observation message. Lastly, the component field indicates the name of the logical component to which the observation message relates. This may be the name of a logical forwarding element (e.g., a logical switch or logical router, as in the 4^(th)-8^(th) rows of the table 745, a distributed firewall (as in the 2^(nd) and 3^(rd) rows), a logical switch port, etc. In addition, for physical actions, such as the injection of the packet at a virtual interface, or the physical forwarding of an encapsulated packet, other information may be shown. The forwarding and receipt of the encapsulated packet, in this example, shows the remote IP (the destination IP address of the packet for the forwarding message and the source IP of the packet for the receipt message). These IP addresses are not those of the source and destination logical network endpoints, but rather those of the physical NICs that send and receive the data packet.

As mentioned, the GUI of some embodiments links the logical and physical network path visualization with the representation of the packet tracing operation messages. To implement this link, in some embodiments the user interface representation of each of the messages is selectable (e.g., with a mouse-over, click, tap, or other input). Upon selection of a particular message, the user interface highlights the physical network component that generated and sent the message as well as the logical network component to which the message relates (if the message has such a component). Similarly, in some embodiments, selection of a physical network component in the path visualization causes the user interface to highlight the messages generated and sent by that component, while selection of a logical network component causes the user interface to highlight the messages that relate to that component.

FIG. 8 illustrates an example of a user selecting a particular row in the table 745, with the GUI 700 highlighting the corresponding logical and physical components in response. As shown, the user moves a cursor 805 over a row 800 in the packet tracing operation message table. This row 800 corresponds to a message indicating that the MFE in the first host 765 (Host-0001) performed logical forwarding of the trace packet for the logical router 760 (T1-LR-1). The user may select this row by moving the cursor over the row or providing other input (clicking on the row, using keyboard input, touch input, etc.) in different embodiments. As a result, the GUI 700 highlights the representation of the physical component that performed the operation (the host 765) and the logical component to which the operation relates (the logical router 760). Some embodiments either brighten (e.g., by increasing the saturation of) the highlighted components, lighten (e.g., by decreasing the saturation of) the other components, perform both, or otherwise highlight the components.

In addition to selecting a row in the table to see the related components, a user can select a component (logical or physical) to cause the GUI to highlight all of the related rows in the table. FIG. 9 illustrates an example of a user selecting a logical component in the logical path visualization 735, with the GUI 700 highlighting the messages in the table 745 that correspond to that component. As shown, the user moves the cursor 805 over the representation of the logical router 760. As in the previous example, the user may select this component by moving the cursor over the component or providing other input (clicking on the row, using keyboard input, touch input, etc.) in different embodiments. As a result, the GUI 700 highlights the representation of the component 760, as well as any rows in the table 745 for messages that relate to this component. In this case, two messages relate to the logical router 760; as such, the messages 900 and 800, relating to the logical receipt and forwarding of the packet for the logical router, are highlighted. In addition, though not shown in this example, some embodiments highlight the physical component (or multiple components) that implement the selected logical component for the path.

FIG. 10 illustrates an example of a user selecting a physical component in the physical path visualization 740, with the GUI highlighting the messages in the table 745 that correspond to the selected component. As shown, the user moves the cursor 805 over the representation of the physical host machine 770. As in the previous example, the user may select this component by moving the cursor over the component or providing other input (clicking on the row, using keyboard input, touch input, etc.) in different embodiments. As a result, the GUI highlights the representation of this physical component 770, as well as any rows in the table 745 for messages generated by this component. In this case, four messages relate to the physical host 770; as such, the messages 1000-1015 are highlighted. In addition, though not shown in this example, some embodiments highlight the logical component (or multiple components) that are implement by the selected physical component for the path taken by the trace packets.

FIG. 11 conceptually illustrates a process 1100 of some embodiments for initiating a packet tracing operation and displaying the results of this operation along with a visualization of the logical and physical network paths taken by the trace packets. This process 1100 is performed, in some embodiments, by a network management application that is integrated with a network control and management system for managing the implementation of logical networks within a physical network (e.g., a datacenter). In some embodiments, the network management application operates on a user device (e.g., an administrator computer) and queries the network control system for data. In other embodiments, the network management application operates on back-end devices (e.g., a cluster of computers on which the management and control system operates), and the administrator remotely accesses the application (e.g., through a web browser).

As shown, the process 1100 begins by receiving (at 1105) a command through a GUI for a packet tracing operation from a source endpoint to a destination endpoint (e.g., a pair of logical network endpoints. In some embodiments, the user specifies two logical switch ports (on the same or different logical switches), or a logical switch port and a logical router uplink for communicating with external networks (which may also be a logical network endpoint). In other embodiments, the user specifies a particular data compute node (e.g., a VM) or data compute node interface (e.g., a particular VIF of a VM) for each endpoint, as shown in FIG. 7.

The process 1100 then executes (at 1110) the trace operation. In some embodiments, the process that interacts with the GUI actually initiates the trace operation by sending a command to the network management and control system to generate and inject a trace packet at the source endpoint. The network management and control system (e.g., a combination of network managers, central controllers, and local controllers operating on the host machines) generates a trace packet, and injects this packet at the MFE operating on the host machine of the source endpoint.

Next, the process 1100 receives (at 1115) messages for the trace operation (i.e., the forwarding, receipt, delivery, etc. messages pertaining to various different components). Again, in some embodiments, the network management and control system receives these messages from the MFEs, and provides them to the GUI process.

The process 1100 determines (at 1120) the logical and physical components for each trace operation message. That is, for each trace operation message received, the process determines (i) the physical component that generated the message and (ii) the logical component to which the message relates (or other information about the message, for non-logical information such as tunnel send and receive messages). In the table 745, this is the information in the node and component columns.

The process 1100 also generates (at 1125) the logical and physical path visualizations for the trace operation endpoints. In some embodiments, the process 1100 uses the process 600, or portions thereof, in order to generate the path visualizations. That is, the process determines the logical network components and interfaces between the endpoints and the physical network components along the packet path and their physical interfaces, then determines the alignment of these two sets of components.

Finally, the process 1100 provides (at 1130) the (logical and physical) path visualization (including the alignment information), the trace message data, and the linking information (between the trace messages and the path visualization) to the GUI. In some embodiments, this information is provided as a set of data structures, which the application converts to a graphical visualization of the paths (e.g., using SVG images) and a table of the messages. In other embodiments (e.g., when the GUI is provided on a web browser), the aligned graphical data and the table itself is provided. After providing the data, the process 1100 ends.

FIG. 12 conceptually illustrates the architecture of a network management and control system 1200 that generates the GUI of some embodiments for displaying network path visualizations and trace operation results. In addition, the figure illustrates and administrator machine 1205 (separate from the management and control system 1200) as well as several host machines 1210.

The administrator machine 1205, of some embodiments, may be a desktop or laptop computer, or other device, that an administrator uses to connect with the network management and control system 1200. This machine 1205 runs an application 1215 that presents the GUI (i.e., the management application GUI, as shown in the above figures) to the administrator. This application 1215 operating on the administrator machine may be a management application that links with the network management and control system 1200 in some embodiments. In some such embodiments, the application 1215 receives data describing the trace operation results and/or the logical and physical network paths, and uses its stored graphics and information to convert this data into the GUI. In other embodiments, the application 1215 is a web browser or other generic application through which the administrator machine connects to the network management and control system 1200 (e.g., as a thin client). In some such embodiments, the application 1215 receives a description of the GUI itself as well as the graphics to display from the network management and control system 1200 (i.e., the network management and control system generates the GUI and provides this to the application).

The host machines 1210 may host logical network data compute nodes (e.g., VMs, containers, etc.) and/or centralized routing components for logical routers (e.g., as VMs, within the MFE datapath, etc.). Each of the host machines 1210 includes a MFE 1220. In some embodiments, the MFEs 1220 are software forwarding elements (e.g., OVS, ESX) that may be part of the virtualization software of the host machine. The MFEs implement logical networks within the physical network of, e.g., a datacenter, and receive configuration data for these logical networks from the network management and control system 1200. In addition, when a packet tracing operation is requested, the network management and control system 1200 injects a packet into the MFE 1220 on the host machine of the source endpoint for the trace. The MFEs 1220 that process the trace packet send observation messages to the network management and control system 1200 to indicate the actions taken on the trace packet.

The network management and control system 1200, as shown includes a GUI/API 1225, an interface 1230 for communicating with the MFEs, a storage 1235 that stores logical and physical network data, a path visualizer 1240, and a traceflow module 1245. While a single block is shown to represent the network management and control system 1200, it should be understood that these functions may be spread among multiple different computing devices and/or separately functioning applications on a single computing device. For instance, in some embodiments the network management and control system 1200 includes a centralized management plane and centralized control plane in addition to local controllers that operate on the host machines 1210 to directly control the MFEs. In addition, the centralized aspects may be performed in a distributed cluster in some embodiments.

The GUI/API 1225 is the interface through which the application 1215 on the administrator machine communicates with the network management and control system 1200. The application 1215 sends various commands (e.g., to initiate a tracelow operation and provide results, to display the path visualization between a set of endpoints) via this interface 1225. The network management and control system 1200 provides the GUI and/or data for the GUI to the application 1215 to the application through this interface 1225.

The MFE interface 1230 is representative of the interface(s) through which the network management and control system 1200 configures the MFEs 1220. In some embodiments, centralized controllers (operating on separate machines from the MFEs 1220) provide configuration data directly to the MFEs. In other embodiments, however, the centralized network management and control system 1200 provides abstract configuration data to local controllers that operate alongside the MFEs 1220 on the host machines 1210; these local controllers then convert this data into MFE-specific configuration data and provide the data to the MFEs. Through whichever mechanism is implemented, the network management and control system 1200 injects trace packets into the appropriate source MFE 1220, and receives observation messages based on the processing of this trace packet from the MFEs 1220.

The logical and physical network data storage 1235 stores information about the configuration of various logical networks implemented within the physical networks (i.e., implemented by the MFEs 1220). This includes the configuration of logical forwarding elements and their ports, distributed firewall rules, etc. In addition, the storage 1235 stores information about the physical network implementation of these logical networks, including the host machines on which the various logical ports (i.e., logical network endpoints, such as VMs) are located. This information may be stored in a single central repository, replicated among multiple repositories in a cluster, and/or stored in a distributed manner.

The path visualizer 1240 uses the logical and physical network data 1235 to generate the logical and physical network path visualization between a set of endpoints, upon request from an application 1215 through the interface 1225. The path visualizer 1240, in some embodiments, performs the process 600 or a similar process. The path visualizer 1240 generates the logical and physical paths, determines the relevant interfaces (both logical and physical) to display, aligns the two paths for display, and provides this visualization (along with the other information about the components) to the interface 1225.

The traceflow module 1245 receives a packet tracing request through the interface 1245 and initiates the packet tracing operation. In some embodiments, various aspects of the packet tracing operation are performed by different layers of the network management and control system 1200. For instance, in some embodiments the management plane initiates the process, while the local controllers actually inject the packet (according to data received from the management plane or central control plane) and receive the observation messages from the MFEs 1220. The observation messages are then passed up to the centralized aspects, which analyze these messages. The traceflow module 1245 also generates a table to be included in the GUI, and provides this table to the application 1215 through the interface 1225.

III. Electronic System

FIG. 13 conceptually illustrates an electronic system 1300 with which some embodiments of the invention are implemented. The electronic system 1300 can be used to execute any of the control, virtualization, or operating system applications described above. The electronic system 1300 may be a computer (e.g., a desktop computer, personal computer, tablet computer, server computer, mainframe, a blade computer etc.), phone. PDA, or any other sort of electronic device. Such an electronic system includes various types of computer readable media and interfaces for various other types of computer readable media. Electronic system 1300 includes a bus 1305, processing unit(s) 1310, a system memory 1325, a read-only memory 1330, a permanent storage device 1335, input devices 1340, and output devices 1345.

The bus 1305 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the electronic system 1300. For instance, the bus 1305 communicatively connects the processing unit(s) 1310 with the read-only memory 1330, the system memory 1325, and the permanent storage device 1335.

From these various memory units, the processing unit(s) 1310 retrieve instructions to execute and data to process in order to execute the processes of the invention. The processing unit(s) may be a single processor or a multi-core processor in different embodiments.

The read-only-memory (ROM) 1330 stores static data and instructions that are needed by the processing unit(s) 1310 and other modules of the electronic system. The permanent storage device 1335, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the electronic system 1300 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 1335.

Other embodiments use a removable storage device (such as a floppy disk, flash drive, etc.) as the permanent storage device. Like the permanent storage device 1335, the system memory 1325 is a read-and-write memory device. However, unlike storage device 1335, the system memory is a volatile read-and-write memory, such a random access memory. The system memory stores some of the instructions and data that the processor needs at runtime. In some embodiments, the invention's processes are stored in the system memory 1325, the permanent storage device 1335, and/or the read-only memory 1330. From these various memory units, the processing unit(s) 1310 retrieve instructions to execute and data to process in order to execute the processes of some embodiments.

The bus 1305 also connects to the input and output devices 1340 and 1345. The input devices enable the user to communicate information and select commands to the electronic system. The input devices 1340 include alphanumeric keyboards and pointing devices (also called “cursor control devices”). The output devices 1345 display images generated by the electronic system. The output devices include printers and display devices, such as cathode may tubes (CRT) or liquid crystal displays (LCD). Some embodiments include devices such as a touchscreen that function as both input and output devices.

Finally, as shown in FIG. 13, bus 1305 also couples electronic system 1300 to a network 1365 through a network adapter (not shown). In this manner, the computer can be a part of a network of computers (such as a local area network (“LAN”), a wide area network (“WAN”), or an Intranet, or a network of networks, such as the Internet. Any or all components of electronic system 1300 may be used in conjunction with the invention.

Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.

While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some embodiments are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself.

As used in this specification, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification, the terms “computer readable medium,” “computer readable media,” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.

This specification refers throughout to computational and network environments that include virtual machines (VMs). However, virtual machines are merely one example of data compute nodes (DCNs) or data compute end nodes, also referred to as addressable nodes. DCNs may include non-virtualized physical hosts, virtual machines, containers that run on top of a host operating system without the need for a hypervisor or separate operating system, and hypervisor kernel network interface modules.

VMs, in some embodiments, operate with their own guest operating systems on a host using resources of the host virtualized by virtualization software (e.g., a hypervisor, virtual machine monitor, etc.). The tenant (i.e., the owner of the VM) can choose which applications to operate on top of the guest operating system. Some containers, on the other hand, are constructs that run on top of a host operating system without the need for a hypervisor or separate guest operating system. In some embodiments, the host operating system uses name spaces to isolate the containers from each other and therefore provides operating-system level segregation of the different groups of applications that operate within different containers. This segregation is akin to the VM segregation that is offered in hypervisor-virtualized environments that virtualize system hardware, and thus can be viewed as a form of virtualization that isolates different groups of applications that operate in different containers. Such containers are more lightweight than VMs.

Hypervisor kernel network interface modules, in some embodiments, is a non-VM DCN that includes a network stack with a hypervisor kernel network interface and receive/transmit threads. One example of a hypervisor kernel network interface module is the vmknic module that is part of the ESXi™ hypervisor of VMware, Inc.

It should be understood that while the specification refers to VMs, the examples given could be any type of DCNs, including physical hosts, VMs, non-VM containers, and hypervisor kernel network interface modules. In fact, the example networks could include combinations of different types of DCNs in some embodiments.

While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. In addition, a number of the figures (including FIGS. 6 and 11) conceptually illustrate processes. The specific operations of these processes may not be performed in the exact order shown and described. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro process. Thus, one of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims. 

What is claimed is:
 1. A method of tracing packet flows between machines connected to a logical network, the method comprising: providing a user interface comprising a set of tools to identify at least two machines connected to the logical network and to request tracing of packet flows between the identified two machines through the logical network; receiving, through the user interface, the request to trace the packet flows between the two identified machines; configuring a plurality of network components that implement the logical network to collect data regarding the packet flows between the two machines in order to trace the flows through the logical network; and based on the collected data, providing for display a visualization of a set of one or more paths through the logical network for one or more packet flows between the two machines.
 2. The method of claim 1, wherein the visualization is through the user interface.
 3. The method of claim 1, wherein the set of paths traverse through a set of logical network components between the two machines.
 4. The method of claim 3, wherein the plurality of network elements comprises a set of physical network components that implement the logical network components.
 5. The method of claim 4, wherein the visualization displays the set of physical network components and the set of logical network components next to each other.
 6. The method of claim 4, wherein the set of logical network components comprises at least one logical forwarding element, wherein the set of physical network components comprises at least two of physical forwarding elements that implement one logical forwarding element.
 7. The method of claim 4, wherein the set of physical network components comprise (i) host computers on which one of the two machines execute and (ii) at least one host computer on which one or more physical forwarding elements that are used to implement a logical forwarding element execute.
 8. The method of claim 4, wherein the visualization displays the sets of logical network components in a first color and displays the set of physical network components in a second color.
 9. The method of claim 3, wherein the set of logical network components comprise a set of one or more logical switches and at least two logical ports of the set of logical switches, each of the two machines connecting to one of the two logical ports.
 10. The method of claim 1, wherein the visualization further comprises display of tunnels between the pairs of network components.
 11. A non-transitory machine readable medium storing a program which when executed by at least one processing unit traces packet flows between machines connected to a logical network, the program comprising sets of instructions for: providing a user interface comprising a set of tools to identify at least two machines connected to the logical network and to request tracing of packet flows between the identified two machines through the logical network; receiving, through the user interface, the request to trace the packet flows between the two identified machines; configuring a plurality of network components that implement the logical network to collect data regarding the packet flows between the two machines in order to trace the flows through the logical network; and based on the collected data, providing for display a visualization of a set of one or more paths through the logical network for one or more packet flows between the two machines.
 12. The non-transitory machine readable medium of claim 11, wherein the visualization is through the user interface.
 13. The non-transitory machine readable medium of claim 11, wherein the set of paths traverse through a set of logical network components between the two machines.
 14. The non-transitory machine readable medium of claim 13, wherein the plurality of network elements comprises a set of physical network components that implement the logical network components.
 15. The non-transitory machine readable medium of claim 14, wherein the visualization displays the set of physical network components and the set of logical network components next to each other.
 16. The non-transitory machine readable medium of claim 14, wherein the set of logical network components comprises at least one logical forwarding element, wherein the set of physical network components comprises at least two of physical forwarding elements that implement one logical forwarding element.
 17. The non-transitory machine readable medium of claim 14, wherein the set of physical network components comprise (i) host computers on which one of the two machines execute and (ii) at least one host computer on which one or more physical forwarding elements that are used to implement a logical forwarding element execute.
 18. The non-transitory machine readable medium of claim 14, wherein the visualization displays the sets of logical network components in a first color and displays the set of physical network components in a second color.
 19. The non-transitory machine readable medium of claim 13, wherein the set of logical network components comprise a set of one or more logical switches and at least two logical ports of the set of logical switches, each of the two machines comprises a set of instructions for connecting to one of the two logical ports.
 20. The non-transitory machine readable medium of claim 11, wherein the visualization further comprises display of tunnels between the pairs of network components. 